/*******************************************************************************
* Project: QSAR(Cute Software Architecture) 
*
* Copyright: Copyright(C) 2024 by YuetingBen, All Rights Reserved
*
* File name: ComM.c
*
* Brief: ;
*
* Author: Yueting.Ben
*
* Module: ComM
*
*******************************************************************************/

/** HEADER FILES **/
#include "ComM.h"


/** MACRO DEFINITION **/


/** TYPEDEF DEFINITION **/


/** LOCAL DATA DECLARATION **/


/** GLOBAL DATA DECLARATION **/


/** LOCAL FUNCTION DECLARATION **/


/** GLOBAL FUNCTION DECLARATION **/
Std_ReturnType ComM_GetStatus(
    ComM_InitStatusType* Status
);

Std_ReturnType ComM_GetInhibitionStatus(
    NetworkHandleType Channel, 
    ComM_InhibitionStatusType* Status
);

Std_ReturnType ComM_RequestComMode(
    ComM_UserHandleType User, 
    ComM_ModeType ComMode
);

Std_ReturnType ComM_GetMaxComMode (
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
);

Std_ReturnType ComM_GetRequestedComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
);

Std_ReturnType ComM_GetCurrentComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
);

Std_ReturnType ComM_GetCurrentPNCComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
);

Std_ReturnType ComM_GetPncToChannelMapping(
    boolean* MappingTable, 
    uint8* ChannelCnt, 
    uint8* PncCnt
);

Std_ReturnType ComM_UpdatePncToChannelMapping(
    const boolean* MappingTable, 
    uint8 channelCnt, 
    uint8 PncCnt
);

Std_ReturnType ComM_ResetPncToChannelMapping(
    void
);

Std_ReturnType ComM_PnLearningRequest(
    void
);

Std_ReturnType ComM_UpdatePncMembership(
    boolean Control, 
    const uint8* PncMembership
);

Std_ReturnType ComM_PreventWakeUp(
    NetworkHandleType Channel, 
    boolean Status
);

Std_ReturnType ComM_LimitChannelToNoComMode(
    NetworkHandleType Channel, 
    boolean Status
);

Std_ReturnType ComM_LimitECUToNoComMode(
    boolean Status
);

Std_ReturnType ComM_ReadInhibitCounter(
    uint16* CounterValue
);

Std_ReturnType ComM_ResetInhibitCounter(
    void
);

Std_ReturnType ComM_SetECUGroupClassification(
    ComM_InhibitionStatusType Status
);

void ComM_Nm_NetworkStartIndication(
    NetworkHandleType Channel
);

void ComM_Nm_NetworkMode(
    NetworkHandleType Channel
);

void ComM_Nm_PrepareBusSleepMode(
    NetworkHandleType Channel
);

void ComM_Nm_BusSleepMode(
    NetworkHandleType Channel
);

void ComM_Nm_RestartIndication(
    NetworkHandleType Channel
);

void ComM_Nm_RepeatMessageLeftIndication(
    NetworkHandleType Channel
);

void ComM_Nm_PncLearningBitIndication(
    NetworkHandleType Channel
);

void ComM_Nm_ForwardSynchronizedPncShutdown(
    NetworkHandleType Channel, 
    const uint8* PncBitVectorPtr
);

void ComM_Nm_UpdateEIRA(
    const uint8* PncBitVectorPtr
);

void ComM_Nm_UpdateERA(
    NetworkHandleType Channel,
    const uint8* PncBitVectorPtr
);

void ComM_DCM_ActiveDiagnostic(
    NetworkHandleType Channel
);

void ComM_DCM_InactiveDiagnostic(
    NetworkHandleType Channel
);

void ComM_EcuM_WakeUpIndication(
    NetworkHandleType Channel
);

void ComM_EcuM_PNCWakeUpIndication( 
    PNCHandleType PNCid
);

void ComM_CommunicationAllowed(
    NetworkHandleType Channel, 
    boolean Allowed
);

void ComM_BusSM_ModeIndication(
    NetworkHandleType Channel, 
    ComM_ModeType ComMode
);

void ComM_BusSM_BusSleepMode(
    NetworkHandleType Channel
);

void ComM_GetVersionInfo(
    Std_VersionInfoType* versionInfo
);

void ComM_Init(
    const ComM_ConfigType* ConfigPtr
);

void ComM_MainFunction_Channel_0(
    void
);


/** LOCAL DATA **/


/** GLOBAL DATA **/


/** LOCAL FUNCTION **/


/** GLOBAL FUNCTION **/

/*******************************************************************************
* -Name         ComM_GetStatus
* -Brief        Returns the initialization status of the AUTOSAR Communication Manager. After a call to ComM_DeInit() ComM should have status COMM_UNINIT, 
*               and a new call to ComM_Init needed to make sure ComM restart internal state machines to defailt values
* -Details      None
* -Param[out]   Status: COMM_UNINIT: The ComM is not initialized or not usable. Default value after startup or after ComM_DeInit() is called. 
*                       COMM_INIT: The ComM is initialized and usable
* -Return       E_OK: Successfully return of initialization status
*               E_NOT_OK: Return of initialization status failed
*******************************************************************************/
Std_ReturnType ComM_GetStatus(
    ComM_InitStatusType* Status
)
{
    
}


/*******************************************************************************
* -Name         ComM_GetInhibitionStatus
* -Brief        Returns the inhibition status of a ComM channel
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[out]   Status: See ComM_InhibitionStatusType
* -Return       E_OK: Successfully returned Inhibition Status
*               E_NOT_OK: Return of Inhibition Status failed
*******************************************************************************/
Std_ReturnType ComM_GetInhibitionStatus(
    NetworkHandleType Channel, 
    ComM_InhibitionStatusType* Status
)
{
    
}


/*******************************************************************************
* -Name         ComM_RequestComMode
* -Brief        Requesting of a Communication Mode by a user
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[in]    ComMode: COMM_FULL_COMMUNICATION COMM_NO_COMMUNICATION
* -Return       E_OK: Successfully changed to the new mode
*               E_NOT_OK: Changing to the new mode failed
*               COMM_E_MODE_LIMITATION: Mode can not be granted because of mode inhibition
*******************************************************************************/
Std_ReturnType ComM_RequestComMode(
    ComM_UserHandleType User, 
    ComM_ModeType ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetMaxComMode
* -Brief        Function to query the maximum allowed Communication Mode of the corresponding user
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[out]   ComMode: See ComM_ModeType
* -Return       E_OK: Successfully returned maximum allowed Communication Mode
*               E_NOT_OK: Return of maximum allowed Communication Mode failed
*******************************************************************************/
Std_ReturnType ComM_GetMaxComMode (
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetRequestedComMode
* -Brief        Function to query the currently requested Communication Mode of the corresponding user
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[out]   ComMode: Name of the requested mode
* -Return       E_OK: Successfully returned requested Communication Mode
*               E_NOT_OK: Return of requested Communication Mode failed
*******************************************************************************/
Std_ReturnType ComM_GetRequestedComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetCurrentComMode
* -Brief        Function to query the current Communication Mode. ComM shall use the corresponding interfaces of 
*               the Bus State Managers to get the current Communication Mode of the network. (Call to Bus State Manager API: 
*               <Bus>SM _GetCurrentComMode(...))
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[out]   ComMode: See ComM_ModeType
* -Return       E_OK: Successfully returned Communication Mode from Bus State Manager
*               E_NOT_OK: Return of Communication Mode from Bus State Manager failed
*******************************************************************************/
Std_ReturnType ComM_GetCurrentComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetCurrentPNCComMode
* -Brief        The function returns the current Communication Mode of the corresponding PNC the affected user is assigned to
* -Details      None
* -Param[in]    User: Handle of the user who requests a mode
* -Param[out]   ComMode: See ComM_ModeType
* -Return       E_OK: Successfully returned the state of the PNC referenced by the given ComMUser 
*               E_NOT_OK: Return of the PNC state referenced by the given ComMUser failed 
*               COMM_E_MULTIPLE_PNC_ASSIGNED: Function could not provide the current mode of the PNC, since multiple PNCs are assigned to the affected user 
*               COMM_E_NO_PNC_ASSIGNED: Function could not provide the current mode of the PNC, since no PNC is assigned to the affected user
*******************************************************************************/
Std_ReturnType ComM_GetCurrentPNCComMode(
    ComM_UserHandleType User, 
    ComM_ModeType* ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetPncToChannelMapping
* -Brief        This function returns the current configuration of the ECUs PNC-to-channel-mapping
* -Details      None
* -Param[in]    None
* -Param[out]   MappingTable: Pointer to two-dimensional array with the current Pnc-to-channel-mapping of the PNC Gateway where 
*                             the first dimension covers all relevant channels and the second all relevant PNCs.
* -Param[out]   ChannelCnt: Pointer to number of ComM channels that are passed in the MappingTable parameter
* -Param[out]   PncCnt: Pointer to number of PNCs, that are passed in the MappingTable parameter
* -Return       E_OK: Successfully get PNC-to-channel-mapping entry
*               E_NOT_OK: Getting of PNC-to-channel-mapping entry failed
*               COMM_E_LEARNING_ACTIVE: Functionality cannot be executed because PNC learning phase is active
*******************************************************************************/
Std_ReturnType ComM_GetPncToChannelMapping(
    boolean* MappingTable, 
    uint8* ChannelCnt, 
    uint8* PncCnt
)
{
    
}

/*******************************************************************************
* -Name         ComM_UpdatePncToChannelMapping
* -Brief        This function can be used to set entries within the the ECUs PNC-to-channel-mapping
* -Details      None
* -Param[in]    MappingTable: Pointer to two-dimensional array with the current Pnc-to-channel-mapping of the PNC Gateway where 
*                             the first dimension covers all relevant channels and the second all relevant PNCs
* -Param[in]    channelCnt: Number of physical channels passed in the MappingTable
* -Param[in]    PncCnt: Number of PNCs passed in the MappingTable
* -Return       E_OK: Successfully set PNC-to-channel-mapping entry
*               E_NOT_OK: Set of PNC-to-channel-mapping entry failed
*               COMM_E_LEARNING_ACTIVE: Functionality cannot be executed because PNC learning phase is active
*******************************************************************************/
Std_ReturnType ComM_UpdatePncToChannelMapping(
    const boolean* MappingTable, 
    uint8 channelCnt, 
    uint8 PncCnt
)
{
    
}

/*******************************************************************************
* -Name         ComM_ResetPncToChannelMapping
* -Brief        This function resets dynamic entries within the ECUs PNC-to-channel-mapping to default values
* -Details      None
* -Param[in]    None
* -Return       E_OK: Successfully reset PNC-to-channel-mapping to default
*               E_NOT_OK: Reset of PNC-to-channel-mapping to default failed
*               COMM_E_LEARNING_ACTIVE: Functionality cannot be executed because PNC learning phase is active.
*******************************************************************************/
Std_ReturnType ComM_ResetPncToChannelMapping(
    void
)
{
    
}


/*******************************************************************************
* -Name         ComM_PnLearningRequest
* -Brief        Triggers the NM to return into NM Repeat Message State and send the Partial Network Learning Bit (
* -Details      Triggers the NM to return into NM Repeat Message State and send the Partial Network Learning Bit
*               (in order for receiving nodes to respond) together with the Repeat Message Request Bit (in order 
*               for receiving nodes to return into NM Repeat Message State). This function is used for the optional 
*               Dynamic PNC-to-channel-mapping feature.
* -Param[in]    None
* -Return       E_OK: Successfully started PNC Learning algorithm
*               E_NOT_OK: PNC Learning algorithm could not be started
*               COMM_E_LEARNING_ACTIVE: Functionality cannot be executed because PNC learning phase is active
*******************************************************************************/
Std_ReturnType ComM_PnLearningRequest(
    void
)
{
    
}


/*******************************************************************************
* -Name         ComM_UpdatePncMembership
* -Brief        This function is used by SWCs to update the PNC membership which is transmitted during PNC Learning. 
*               This function is used for the optional Dynamic PNC-to-channel-mapping feature
* -Details      None
* -Param[in]    Control: Boolean Parameter: 0 = Unset the corresponding Bits in PncBitMask 
*                                           1 = Set the corresponding Bits in PncBitMask
* -Param[in]    PncMembership: Array of uint8 with <PNC Vector Length> Elements that holds the current PNC Membership of the node
* -Return       E_OK: ComM_PncMembership successfully updated
*               E_NOT_OK: Error occurred while updating the PNC membership
*               COMM_E_LEARNING_ACTIVE: Functionality cannot be executed because PNC learning phase is active
*******************************************************************************/
Std_ReturnType ComM_UpdatePncMembership(
    boolean Control, 
    const uint8* PncMembership
)
{
    
}

/*******************************************************************************
* -Name         ComM_PreventWakeUp
* -Brief        Changes the inhibition status COMM_NO_WAKEUP for the corresponding channel
* -Details      None
* -Param[in]    Channel: See NetworkHandleType
* -Param[in]    Status: FALSE: Wake up inhibition is switched off TRUE: Wake up inhibition is switched on
* -Return       E_OK: Successfully changed wake up status for the channel
*               E_NOT_OK: Change of wake up status for the channel failed, e.g.
*               ComMEcuGroupClassification disables the functionality (see ECUC_ComM_00563)
*******************************************************************************/
Std_ReturnType ComM_PreventWakeUp(
    NetworkHandleType Channel, 
    boolean Status
)
{
    
}


/*******************************************************************************
* -Name         ComM_LimitChannelToNoComMode
* -Brief        Changes the inhibition status for the channel for changing from COMM_NO_COMMUNICATION to a higher Communication Mode. 
*               (See also ComM_LimitECUToNoComMode, same functionality but for all channels)
* -Details      None
* -Param[in]    Channel: See NetworkHandleType
* -Param[in]    Status: FALSE: Limit channel to COMM_NO_COMMUNICATION disabled
*                       TRUE: Limit channel to COMM_NO_COMMUNICATION enabled
* -Return       E_OK: Successfully changed inhibition status for the channel
*               E_NOT_OK: Change of inhibition status for the channel failed, e.g.
*               ComMEcuGroupClassification disables the functionality (see ECUC_ComM_00563)
*******************************************************************************/
Std_ReturnType ComM_LimitChannelToNoComMode(
    NetworkHandleType Channel, 
    boolean Status
)
{
    
}

/*******************************************************************************
* -Name         ComM_LimitECUToNoComMode
* -Brief        Changes the inhibition status for the ECU (=all channels) for changing from COMM_NO_COMMUNICATION to a higher Communication Mode. 
*               (See also ComM_LimitChannelToNoComMode, same functionality but for a specific channels)
* -Details      None
* -Param[in]    Status: FALSE: Limit ECU to COMM_NO_COMMUNICATION disabled
*                       TRUE: Limit ECU to COMM_NO_COMMUNICATION enabled
* -Return       E_OK: Successfully changed inhibition status for the ECU
*               E_NOT_OK: Change of inhibition status for the ECU failed, e.g. ComMEcuGroupClassification disables the functionality (see ECUC_ComM_00563)
*******************************************************************************/
Std_ReturnType ComM_LimitECUToNoComMode(
    boolean Status
)
{
    
}

/*******************************************************************************
* -Name         ComM_ReadInhibitCounter
* -Brief        This function returns the amount of rejected COMM_FULL_COMMUNICATION user requests
* -Details      None
* -Param[in]    CounterValue: Amount of rejected COMM_FULL_COMMUNICATION user requests.
* -Return       E_OK: Successfully returned Inhibition Counter
*               E_NOT_OK: Return of Inhibition Counter failed
*******************************************************************************/
Std_ReturnType ComM_ReadInhibitCounter(
    uint16* CounterValue
)
{
    
}

/*******************************************************************************
* -Name         ComM_ResetInhibitCounter
* -Brief        This function resets the Inhibited COMM_FULL_COMMUNICATION request Counter
* -Details      None
* -Param[in]    None
* -Return       E_OK: Successfully reset of Inhibit COMM_FULL_COMMUNICATION Counter
*               E_NOT_OK: Reset of Inhibit COMM_FULL_COMMUNICATION Counter failed
*******************************************************************************/
Std_ReturnType ComM_ResetInhibitCounter(
    void
)
{
    
}

/*******************************************************************************
* -Name         ComM_SetECUGroupClassification
* -Brief        Changes the ECU Group Classification status
* -Details      None
* -Param[in]    Status: See ComM_InhibitionStatusType
* -Return       E_OK: Successfully change the ECU Group Classification Status
*               E_NOT_OK: Change of the ECU Group Classification Status failed
*******************************************************************************/
Std_ReturnType ComM_SetECUGroupClassification(
    ComM_InhibitionStatusType Status
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_NetworkStartIndication
* -Brief        Indication that a NM-message has been received in the Bus Sleep Mode, what indicates that some nodes in the network 
*               have already entered the Network Mode
* -Details      None
* -Param[in]    Channel: See NetworkHandleType
* -Return       None
*******************************************************************************/
void ComM_Nm_NetworkStartIndication(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_NetworkMode
* -Brief        Notification that the network management has entered Network Mode
* -Details      None
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_NetworkMode(
    NetworkHandleType Channel
)
{
    CanSM_RequestComMode(Channel, COMM_FULL_COMMUNICATION);
}


/*******************************************************************************
* -Name         ComM_Nm_PrepareBusSleepMode
* -Brief        Notification that the network management has entered Prepare Bus-Sleep Mode. Reentrancy: Reentrant (but not for the same NM-Channel)
* -Details      None
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_PrepareBusSleepMode(
    NetworkHandleType Channel
)
{
    CanSM_RequestComMode(Channel, COMM_SILENT_COMMUNICATION);
}

/*******************************************************************************
* -Name         ComM_Nm_BusSleepMode
* -Brief        Notification that the network management has entered Bus-Sleep Mode. This callback function should perform a transition of the 
*               hardware and transceiver to bus-sleep mode
* -Details      None
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_BusSleepMode(
    NetworkHandleType Channel
)
{
    CanSM_RequestComMode(Channel, COMM_NO_COMMUNICATION);
}

/*******************************************************************************
* -Name         ComM_Nm_RestartIndication
* -Brief        None
* -Details      If NmIf has started to shut down the coordinated busses, AND not all coordinated busses have indicated bus sleep state, AND on at least on one of 
*               the coordinated busses NM is restarted, THEN the NM Interface shall call the callback function ComM_Nm_RestartIndication with the nmNetworkHandle 
*               of the channels which have already indicated bus sleep state
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_RestartIndication(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_RepeatMessageLeftIndication
* -Brief        None
* -Details      Notification that the state of all <Bus>Nm has left RepeatMessage. This interface is used to indicate by the optional 
*               Dynamic PNC-to-channel-mapping feature to indicate that learning phase ends.
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_RepeatMessageLeftIndication(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_PncLearningBitIndication
* -Brief        Service to indicate that an NM message with set PNC Learning Bit has been received
* -Details      None
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_Nm_PncLearningBitIndication(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_ForwardSynchronizedPncShutdown
* -Brief        None
* -Details      If an ECU in role of an intermediate PNC coordinator receives a PN shutdown message via a <Bus>Nm, then ComM is immediately 
*               indicated via ComM_Nm_ForwardSynchronizedPncShutdown to forward the request for a synchronized PNC shutdown of the affected 
*               PNCs given by PncBitVectorPtr. Therefore, ComM will immediately release the affected PNC state machines and forward the PNC 
*               bit vector to the affected ComM Channels and the corresponding NM channels, respectively. Note: This supports a nearly synchronized 
*               PNC shutdown across the PN topology from the top-level PNC coordinator down to the subordinated PNC node.
* -Param[in]    Channel: Channel
* -Param[in]    PncBitVectorPtr: Pointer to PNC Bit vector with all PNC bits set to "1" which are indicated for a synchronized PNC shutdown
* -Return       None
*******************************************************************************/
void ComM_Nm_ForwardSynchronizedPncShutdown(
    NetworkHandleType Channel, 
    const uint8* PncBitVectorPtr
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_UpdateEIRA
* -Brief        Function to indicate the current aggregated external / internal PNC request called by Nm.
* -Details      None
* -Param[in]    PncBitVectorPtr: Function to indicate the current aggregated external / internal PNC request called by Nm.
* -Return       None
*******************************************************************************/
void ComM_Nm_UpdateEIRA(
    const uint8* PncBitVectorPtr
)
{
    
}

/*******************************************************************************
* -Name         ComM_Nm_UpdateERA
* -Brief        Function to indicate the current external PNC request per channel called by Nm
* -Details      None
* -Param[in]    Channel: Channel
* -Param[in]    PncBitVectorPtr: PNC bit vector which contain the current external PNC requests (ERA) received on the given channel
* -Return       None
*******************************************************************************/
void ComM_Nm_UpdateERA(
    NetworkHandleType Channel,
    const uint8* PncBitVectorPtr
)
{
    
}

/*******************************************************************************
* -Name         ComM_DCM_ActiveDiagnostic
* -Brief        Indication of active diagnostic by the DCM
* -Details      None
* -Param[in]    Channel: Channel needed for Diagnostic communication
* -Return       None
*******************************************************************************/
void ComM_DCM_ActiveDiagnostic(
    NetworkHandleType Channel
)
{
    CanSM_RequestComMode(Channel, COMM_SILENT_COMMUNICATION);
}

/*******************************************************************************
* -Name         ComM_DCM_InactiveDiagnostic
* -Brief        Indication of inactive diagnostic by the DCM
* -Details      None
* -Param[in]    Channel: Channel no longer needed for Diagnostic communication
* -Return       None
*******************************************************************************/
void ComM_DCM_InactiveDiagnostic(
    NetworkHandleType Channel
)
{
    CanSM_RequestComMode(Channel, COMM_FULL_COMMUNICATION);
}

/*******************************************************************************
* -Name         ComM_EcuM_WakeUpIndication
* -Brief        Notification of a wake up on the corresponding channel
* -Details      None
* -Param[in]    Channel: Channel
* -Return       None
*******************************************************************************/
void ComM_EcuM_WakeUpIndication(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_EcuM_WakeUpIndication
* -Brief        Notification of a wake up on the corresponding partial network cluster
* -Details      None
* -Param[in]    PNCid: Identifier of the partial network cluster
* -Return       None
*******************************************************************************/
void ComM_EcuM_PNCWakeUpIndication( 
    PNCHandleType PNCid
)
{
    
}

/*******************************************************************************
* -Name         ComM_CommunicationAllowed
* -Brief        EcuM or BswM shall indicate to ComM when communication is allowed. If EcuM/Flex is used: BswM
* -Details      None
* -Param[in]    Channel: Channel
* -Param[in]    Allowed: TRUE: Communication is allowed FALSE: Communication is not allowed
* -Return       None
*******************************************************************************/
void ComM_CommunicationAllowed(
    NetworkHandleType Channel, 
    boolean Allowed
)
{
    
}

/*******************************************************************************
* -Name         ComM_BusSM_ModeIndication
* -Brief        Indication of the actual bus mode by the corresponding Bus State Manager. ComM shall propagate the indicated 
*               state to the users with means of the RTE and BswM
* -Details      None
* -Param[in]    Channel: Channel
* -Param[in]    ComMode: See ComM_ModeType
* -Return       None
*******************************************************************************/
void ComM_BusSM_ModeIndication(
    NetworkHandleType Channel, 
    ComM_ModeType ComMode
)
{
    
}

/*******************************************************************************
* -Name         ComM_BusSM_BusSleepMode
* -Brief        Notification of the corresponding Bus State Manager that the actual bus mode is Bus-Sleep
* -Details      None
* -Param[in]    Channel: Identification of the channel
* -Return       None
*******************************************************************************/
void ComM_BusSM_BusSleepMode(
    NetworkHandleType Channel
)
{
    
}

/*******************************************************************************
* -Name         ComM_GetVersionInfo
* -Brief        Returns the version information of this module 
* -Details      None
* -Param[out]   versioninfo: Pointer to the version information of this module
* -Return       None          
*******************************************************************************/
void ComM_GetVersionInfo(
    Std_VersionInfoType* versionInfo
)
{
    versionInfo->vendorID = (uint16)YSAR_VENDOR_ID;
    versionInfo->moduleID = (uint8)COMM_MODULE_ID;
    versionInfo->sw_major_version = (uint8)COMM_SW_MAJOR_VERSION;
    versionInfo->sw_minor_version = (uint8)COMM_SW_MINOR_VERSION;
    versionInfo->sw_patch_version = (uint8)COMM_SW_PATCH_VERSION;
}

/*******************************************************************************
* -Name         ComM_Init
* -Brief        Initializes the AUTOSAR Communication Manager and restarts the internal state machines 
* -Details      None
* -Param[in]    ConfigPtr: Pointer to post-build configuration data
* -Return       None          
*******************************************************************************/
void ComM_Init(
    const ComM_ConfigType* ConfigPtr
)
{
    
}

/*******************************************************************************
* -Name         ComM_MainFunction_Channel_0
* -Brief        This function shall perform the processing of the AUTOSAR ComM activities that are not directly initiated by the calls e.g. 
*               from the RTE. There shall be one dedicated Main Function for each channel of ComM. Precondition: ComM shall be initialized
* -Details      None
* -Param[in]    None
* -Return       None          
*******************************************************************************/
void ComM_MainFunction_Channel_0(
    void
)
{
    
}


